This invention relates to computer systems and more particularly to using computer systems to diagnose problems within other systems.
Diagnosis of most problems is typically a human centered process. When diagnosing problems within computer systems, however, diagnostic software is often available to assist with the diagnosis. For some problems the diagnostic software is totally sufficient and completely diagnoses the problem and recommends a solution. For example, some software available to assist hardware repair will identify the faulty circuit so completely that a repair person then only has to replace the identified circuit to correct the defect. Typically, however, diagnostic software can only completely solve problems that involve defective hardware. When the problem also involves defective software, or a problem of the interaction between software and hardware, or a problem of interaction between multiple software components, diagnostic software is usually insufficient to completely resolve the problem.
Over the past two or three decades, problems and their solutions have been collected into databases called knowledgebases. Along with the collection of problems and solutions, knowledgebase systems include search software to search the knowledgebase in order to match a knowledgebase problem description with the problem description supplied by the user to return a solution to the problem from the solutions stored in the knowledgebase. Input to the search software is typically human supplied, and comprises words and phrases which can be used to search the text of the knowledgebase, or used within artificial intelligence software to perform a more comprehensive search of the symptoms from the knowledgebase. These knowledgebases are often created for use at support enters by manufacturers of hardware or software, and are sometimes also made available to users of he hardware or software through distribution on electronic media or through the internet.
The most common problem solving method, however, is a support center provided by the hardware or software manufacturer. When a user calls, the user describes the problem to a support representative, who may ask additional questions of the user and then recalls a solution from the knowledgebase, recalls a solution from their own experience, or recalls a solution using a combination of these techniques, to provide a problem solution. Typically the support representative will also enter information into a call database which tracks the time spent solving the problem, as well as keeping a textual description of the problem to be entered into the call database. It is possible, although usually quite difficult, to correlate different calls in the call database to determine that these different calls were the result of the same problem. This correlation is almost exclusively done by human analysis, and the results are then put into the knowledgebase so that the support engineer can search for solutions to future problems. This correlation, however, is very time consuming and intuitive, therefore it is seldom done with much efficiency. That is, most of the problems in the call database are not correlated and are often not readily available to help resolve future problems.
One of the problems with knowledgebases is that when the knowledgebase is available to the user, the efforts spent by the user in searching the knowledgebase are not available for use in analysis of the problem. That is, the steps taken by the user in searching the knowledgebase, which often provide significant information about the problem, are not collected and thus are not available to the support representative if the user is unable to resolve the problem before calling the support representative. Further, if diagnostic software is performed in resolving the problem, the results of the diagnostic software are not collected and are not made available to a support representative.
There is need in the art then for a method of collecting information, such as diagnostic software derived information, or search software derived information, to assist in resolving a problem. There is further need in the art for a system to collect this information and use this information in correlating problem descriptions from multiple sources into a single problem description and solution. The present invention solves these and other needs in the art.
Application Ser. No. 09/470,848 of Martinka, et al., filed Dec. 23, 1999, entitled xe2x80x9cApparatus for a Multi-Modal Ontology Enginexe2x80x9d is hereby incorporated by reference for all that is disclosed and taught therein.
It is an aspect of the present invention to combine machine collected data with human collected data about problems within computer systems.
It is another aspect of the invention to collect search information about searches of a knowledgebase as part of the machine collected data.
Another aspect of the invention is to collect machine diagnostic software information as another part of the machine collected data.
Another aspect of the invention is to correlate multiple machine collected descriptions of a problem to determine that a single problem has been described.
Still another aspect of the invention is to derive additional knowledgebase information from the correlated multiple machine collected descriptions.
The above and other aspects of the invention are accomplished in a system that collects information from diagnostic software as well as search path information a user uses in searching a knowledgebase and provides this information electronically to a call center where the information is stored in a xe2x80x9cdataminexe2x80x9d database. In addition, a textual description of the problem is collected from the user by a support representative at the call center and this textual information is stored in a call database along with information about the cost of resolving the problem, such as the support representative""s time. The information in the call database and the datamine database are related through a call identification number so that the two types of information remain connected. Correlation software analyzes datamine data from multiple incidents to correlate the multiple incidents into common problem definitions.
From the common problem definitions, a histogram is created that indicates the frequency of different problems, so that more resources can be spent solving more common problems and less resources spent on less common problems.
A knowledge engineer uses the correlated information from the datamine, along with the information from the call database, to determine a solution to the problem and place this solution into the knowledgebase, thus closing a feedback loop with the user who initially used the knowledgebase to try to find a solution, and also allow future users to find a solution to the problem in the knowledgebase.